707eac8b30ef7574f15073aafab6239ea821d805,clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstance.java,VmInstance,addPermanentVolume,#String#Volume#,1386
Before Change
}
public void addPermanentVolume( final String deviceName, final Volume vol ) {
final EntityTransaction db = Entities.get( VmInstance.class );
try {
final VmInstance entity = Entities.merge( this );
final VmVolumeAttachment volumeAttachment = new VmVolumeAttachment( entity, vol.getDisplayName( ), deviceName, vol.getRemoteDevice( ), AttachmentState.attached.name( ), new Date( ), false );
entity.bootRecord.getPersistentVolumes( ).add( volumeAttachment );
db.commit( );
} catch ( final RuntimeException ex ) {
Logs.extreme( ).error( ex, ex );
db.rollback( );
After Change
}
public void addPermanentVolume( final String deviceName, final Volume vol ) {
final Function<Volume, Volume> attachmentFunction = new Function<Volume, Volume>( ) {
public Volume apply( final Volume input ) {
final VmInstance entity = Entities.merge( VmInstance.this );
final Volume volEntity = Entities.merge( vol );
final VmVolumeAttachment volumeAttachment = new VmVolumeAttachment( entity, vol.getDisplayName( ), deviceName, vol.getRemoteDevice( ), AttachmentState.attached.name( ), new Date( ), false );
entity.bootRecord.getPersistentVolumes( ).add( volumeAttachment );
return volEntity;
}
};
Entities.asTransaction( VmInstance.class, attachmentFunction, VmInstances.TX_RETRIES );
}
/**